home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 335_02 / as8048.txt < prev   
Text File  |  1990-12-02  |  10KB  |  529 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        A.  Appendix_for_as8048_Frankenstein_Assembler
  9.  
  10.        A.1  Pseudo_Operations
  11.  
  12.        A.1.1  Standard_Pseudo_Operation_Mnemonics
  13.  
  14.             End                                END
  15.             File Inclusion                     INCL INCLUDE
  16.             If                                 IF
  17.             Else                               ELSE
  18.             End If                             ENDI
  19.             Equate                             EQU
  20.             Set                                SET
  21.             Org                                ORG
  22.             Reserve Memory                     RESERVE RMB
  23.             Define Byte Data                   BYTE DB FCB
  24.             Define Word Data                   DW FDB WORD
  25.             Define String Data                 FCC STRING
  26.             Define Character Set Translation   CHARSET
  27.             Define Character Value             CHARDEF CHD
  28.             Use Character Translation          CHARUSE
  29.  
  30.        A.1.2  Machine_Dependent_Pseudo_Operations
  31.  
  32.        A.1.2.1  Instruction_Set_Selection
  33.  
  34.             CPU string
  35.  
  36.        The instruction set can be specified in the source file with
  37.        the CPU pseudooperation.  The string, delimited by quotes or
  38.        apostrophes, is scanned for a substring which selects which
  39.        instruction set is used.  When the program is invoked, this
  40.        operation is performed on the name of the program, then the
  41.        -p optional arguement, if any, and then any CPU statements.
  42.        The last one selects which subset of the instructions the
  43.        assembler will accept.  The instruction set can be changed
  44.        at any place in the source file.
  45.  
  46.             Instruction Set          Substrings
  47.             80C48                    C48 c48 C35 c35
  48.             80C49                    C49 c49 C39 c39
  49.             80C50                    C50 c50 C40 c40
  50.             8048                     48 35
  51.             8049                     49 39
  52.             8050                     50 40
  53.             8041                     41
  54.             8042                     42
  55.  
  56.        A.1.2.2  Register_Set
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.             Label REGISTER expr
  75.  
  76.        The REGISTER statement is a version of the SET statement
  77.        that checks that the value of its expression is a valid data
  78.        register location for the current CPU selection.  The
  79.        REGISTER statement sets the symbol specified in the label
  80.        field with the numeric value of the expression.  The
  81.        REGISTER statement can change the value of a symbol, but
  82.        only if the symbol is originally defined in a previous SET
  83.        or REGISTER statement.
  84.  
  85.             Example
  86.  
  87.             dtabl   register        32
  88.  
  89.                     mov     r1, #dtabl
  90.                     mov     a, @r1
  91.  
  92.        A.2  Instructions
  93.  
  94.        A.2.1  Instruction_List
  95.  
  96.        Opcode   Syntax                  Selection Criteria
  97.  
  98.  
  99.        ADD       A ',' '#' expr
  100.        ADD       A ',' '@' REG
  101.        ADD       A ',' REG
  102.  
  103.        ADDC      A ',' '#' expr
  104.        ADDC      A ',' '@' REG
  105.        ADDC      A ',' REG
  106.  
  107.        ANL       A ',' '#' expr
  108.        ANL       A ',' '@' REG
  109.        ANL       A ',' REG
  110.        ANL       BUS ',' '#' expr       INSTNOT41
  111.        ANL       P1 ',' '#' expr
  112.        ANL       P2 ',' '#' expr
  113.  
  114.        ANLD      P47 ',' A
  115.  
  116.        CALL      expr
  117.  
  118.        CLR       A
  119.        CLR       C
  120.        CLR       F0
  121.        CLR       F1
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.        Opcode   Syntax                  Selection Criteria
  141.  
  142.        CPL       A
  143.        CPL       C
  144.        CPL       F0
  145.        CPL       F1
  146.  
  147.        DA        A
  148.  
  149.        DEC       A
  150.        DEC       REG
  151.  
  152.        DIS       I
  153.        DIS       TCNTI
  154.  
  155.        DJNZ      REG ',' expr
  156.  
  157.        EN        DMA                    INST41
  158.        EN        FLAGS                  INST41
  159.        EN        I
  160.        EN        TCNTI
  161.  
  162.        ENT0      CLK                    INSTNOT41
  163.  
  164.        HALT                             INSTIDL
  165.  
  166.        IDL                              INSTIDL
  167.  
  168.        IN        A ',' DBB              INST41
  169.        IN        A ',' P1
  170.        IN        A ',' P2
  171.  
  172.        INC       '@' REG
  173.        INC       A
  174.        INC       REG
  175.  
  176.        INS       A ',' BUS              INSTNOT41
  177.  
  178.        JB0       expr
  179.  
  180.        JB1       expr
  181.  
  182.        JB2       expr
  183.  
  184.        JB3       expr
  185.  
  186.        JB4       expr
  187.  
  188.        JB5       expr
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.        Opcode   Syntax                  Selection Criteria
  207.  
  208.  
  209.        JB6       expr
  210.  
  211.        JB7       expr
  212.  
  213.        JC        expr
  214.  
  215.        JF0       expr
  216.  
  217.        JF1       expr
  218.  
  219.        JMP       expr
  220.  
  221.        JMPP      '@' A
  222.  
  223.        JNC       expr
  224.  
  225.        JNI       expr                   INSTNOT41
  226.  
  227.        JNIBF     expr                   INST41
  228.  
  229.        JNT0      expr
  230.  
  231.        JNT1      expr
  232.  
  233.        JNZ       expr
  234.  
  235.        JOBF      expr                   INST41
  236.  
  237.        JT0       expr
  238.  
  239.        JT1       expr
  240.  
  241.        JTF       expr
  242.  
  243.        JZ        expr
  244.  
  245.        MOV       '@' REG ',' '#' expr
  246.        MOV       '@' REG ',' A
  247.        MOV       A ',' '#' expr
  248.        MOV       A ',' '@' REG
  249.        MOV       A ',' PSW
  250.        MOV       A ',' T
  251.        MOV       A ',' REG
  252.        MOV       PSW ',' A
  253.        MOV       STS ',' A
  254.        MOV       T ',' A
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.        Opcode   Syntax                  Selection Criteria
  273.  
  274.        MOV       REG ',' '#' expr
  275.        MOV       REG ',' A
  276.  
  277.        MOVD      A ',' P47
  278.        MOVD      P47 ',' A
  279.  
  280.        MOVP3     A ',' '@' A
  281.  
  282.        MOVP      A ',' '@' A
  283.  
  284.        MOVX      '@' REG ',' A          INSTNOT41
  285.        MOVX      A ',' '@' REG          INSTNOT41
  286.  
  287.        NOP
  288.  
  289.        ORL       A ',' '#' expr
  290.        ORL       A ',' '@' REG
  291.        ORL       A ',' REG
  292.        ORL       BUS ',' '#' expr       INSTNOT41
  293.        ORL       P1 ',' '#' expr
  294.        ORL       P2 ',' '#' expr
  295.  
  296.        ORLD      P47 ',' A
  297.  
  298.        OUT       DBB ',' A              INST41
  299.  
  300.        OUTL      BUS ',' A              INSTNOT41
  301.        OUTL      P1 ',' A
  302.        OUTL      P2 ',' A
  303.  
  304.        RET
  305.  
  306.        RETR
  307.  
  308.        RL        A
  309.  
  310.        RLC       A
  311.  
  312.        RR        A
  313.  
  314.        RRC       A
  315.  
  316.        SEL       MSELC                  INSTNOT41
  317.        SEL       RSELC
  318.  
  319.        STOP      TCNT
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.        Opcode   Syntax                  Selection Criteria
  339.  
  340.        STRT      CNT
  341.        STRT      T
  342.  
  343.        SWAP      A
  344.  
  345.        XCH       A ',' '@' REG
  346.        XCH       A ',' REG
  347.  
  348.        XCHD      A ',' '@' REG
  349.  
  350.        XRL       A ',' '#' expr
  351.        XRL       A ',' '@' REG
  352.        XRL       A ',' REG
  353.  
  354.        A.2.2  Operands
  355.  
  356.             REG                 REG can be any of r0, r1, r2, r3,
  357.                                 r4, r5, r6, r7, unless proceeded by
  358.                                 a '@' where only r0, and r1 are
  359.                                 accepted.
  360.  
  361.             MSELC               MSELC represents the symbols mb0
  362.                                 and mb1.
  363.  
  364.             RSELC               RSELC represents the symbols rb0
  365.                                 and rb1.
  366.  
  367.             P47                 P47 represents the symbols p4, p5,
  368.                                 p6, p7.
  369.  
  370.        There are uppercase versions of all the reserved symbols.
  371.  
  372.        A.2.3  Selection_Criteria_Keywords
  373.  
  374.             INSTIDL             The instruction is only available
  375.                                 on CMOS implementations.
  376.  
  377.             INSTNOT41           The instruction is not available in
  378.                                 the 8041.
  379.  
  380.             INST41              The instruction is only available
  381.                                 in the 8041.
  382.  
  383.        A.2.4  Apostrophes  The apostrophes in the syntax